<?php

include ('autoloading_classes.include.php');

/**
* Classe rappresentativa di un elemento HTML
*
* \author Gianmarco Nalin
* \date 24/01/2013
*/
class HTMLElement {

    //! Identificatore dell'articolo.
    /*!
     *  Se l'articolo è nuovo il valore non è definito.
     */
    private $name;
    
    //! Contenuto dell'articolo
    private $content;
    
    //! Anno in cui viene utilizzato l'elemento HTML
    private $year;
    
    //! Magic Method: getter.
    /*!
     * Lancia un'eccezione se la proprietà richiesta non esiste.
     * \param name Nome della proprietà.
    */
    public function __get($name) {
        if (property_exists($this, $name)) {
            return $this->{$name};
        } else {
            //throw new Exception("The $name property doesn't exist!");
        }
    }
    
    //! Magic Method: setter.
    /*!
      Lancia un'eccezione se la proprietà che si vuole modificare non esiste.
     * \param name Nome della proprietà.
     * \param value Nuovo valore da assegnare alla proprietà.
    */
    public function __set($name, $value) {
        if(property_exists($this, $name)) {
            $this->{$name} = $value;
        } else {
            //throw new Exception("The $name property doesn't exist!");
        }
    }
    
    public function to_html($admin = false) {
        if ($admin) { ?>
            <div class="admin-element"><div class="administration"><a href="<?= Site::APP_URL . 'admin/html.php?action=edit&name=' . $this->name ?>" class="btn btn-success"><i class="icon-edit icon-white"></i> Modifica</a></div>
                <?php 
                }
        echo $this->content;
        if ($admin) { ?>
            </div>
        <?php 
        } 
    }

}

?>
